﻿namespace EasyToolkit.ModelDefinition
{
    using System.Collections.Generic;

    public interface IModelType
    {
        /// <summary>Return the model type name </summary>
        string Name { get; }
        /// <summary>Return the model type description</summary>
        string Description { get; }

        /// <summary>Return the model type properties</summary>
        /// <returns>the model type properties</returns>
        IEnumerable<IModelProperty> GetProperties();

        /// <summary>Return the model type property whose name is passed as parameter</summary>
        /// <returns>If exists, the model type property, if not null.</returns>
        IModelProperty GetProperty(string name);
    }
}
